// utils/filename.ts
import { getFileList, getTrashList } from '@/api/file'
/**
 * 自动生成新文件名
 * @param filename 原始文件名
 * @param existingFiles 当前目录下的文件列表
 * @returns 新的文件名
 */
// utils/filename.ts
export const generateNewFilename = (filename: string, existingFiles: any[]): string => {
    // 分离文件名和扩展名
    const ext = filename.lastIndexOf('.') > -1 
        ? filename.substring(filename.lastIndexOf('.'))
        : ''
    const baseName = filename.replace(ext, '')
    
    // 匹配类似 "filename(1).ext" 的模式
    const pattern = new RegExp(`^${baseName}(?:\\((\\d+)\\))?${ext}$`)
    
    // 找出所有文件中的最大序号（包括回收站文件）
    let maxNum = 0
    existingFiles.forEach(file => {
        const match = file.name.match(pattern)
        if (match) {
            const num = match[1] ? parseInt(match[1]) : 0
            maxNum = Math.max(maxNum, num)
        }
    })
    
    // 检查文件名是否已存在（包括回收站文件）
    const nameExists = existingFiles.some(
        file => file.name === filename
    )
    
    // 如果文件名不存在，直接使用原始文件名
    if (!nameExists) {
        return filename
    }
    
    // 生成新文件名
    return `${baseName}(${maxNum + 1})${ext}`
}